// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import FastClick from 'fastclick'
import App from './App'
import router from './router/index'
import Vuex from 'vuex'
import axios from 'axios'
Vue.prototype.$ajax = axios
var Mock = require('mockjs');

// 请求地址，打包前清空
Vue.prototype.apiurl = 'http://localhost/PHP230/';

// 移动端标识
Vue.prototype.wxapp_skin = getParam('wxapp_skin');

// ajax获取数据
Vue.prototype.ajax = function (url,callback){
  	this.$ajax.get(this.apiurl+url+this.wxapp_skin)
  	.then(function (res) {
		callback && callback(res);
  	}).catch(function (error) {
     	console.log(error);
  	});
}


//获得hash值得函数
function getParam(name) {
	return location.href.match(new RegExp('[?&#]' + name + '=([^?&]+)', 'i')) ? decodeURIComponent(RegExp.$1) : '';
}

// 注册一个全局自定义指令 `v-focus`
// Vue.directive('focus', {
//   // 当被绑定的元素插入到 DOM 中时……
//   inserted: function (el) {
//     el.focus();
//   }
// });

// Mock 模拟数据，模拟接口
// Mock.mock(
// 	'?c=msg&ts=aboutus&wxapp_skin=wxweb', {
// 	    "userName" : "",     					//模拟名称
// 	    "age"	   : 18,          				//模拟年龄(1-100)
// 	    "color"    : "#f1f279",    				//模拟色值
// 	    "date"     : "1990-01-23",  			//模拟时间
// 	    "url"      : "?c=msg&ts=aboutus",     	//模拟url
// 	    "content"  : "作为专业化广告公司，广告立足于上海广告行业，开拓创新，勇于挑战，秉承路有多远，我们的服务就有多远的服务理念，坚持以策略为先导，以品牌服务为核心，为广大客户提供全方位的服务。" //模拟文本
// 	}
// );

//添加Fastclick移除移动端点击延迟
FastClick.attach(document.body)
Vue.use(Vuex)

Vue.config.productionTip = false

// vuex 状态管理
const store = new Vuex.Store({
	state : {								// state仓库，储存数据
		carousel: []
	},
	mutations : {							// 更新state状态，可通过actions更新，mutations 不可异步操作
		update : (state,list) => {
			state.carousel = list;
		},
	},
	actions : {								// 执行mutations更新，与其区别在于，actions 可执行任意异步操作（ajax）
		updateCar : (context,list) => {
			context.commit('update',list);
		},
	},
	getters : {								// 获取state数据
		getCar : state => {
			return state.carousel
		}
	},
 	//strict: true 							// 在严格模式下，任何 mutation 处理函数以外修改 Vuex state 都会抛出错误。
});


/* eslint-disable no-new */
new Vue({
  	router,
  	store,
  	render: h => h(App),
}).$mount('#app-box')
